package org.aerie.forest.extensions.base.rebar.tool;

import org.aerie.forest.core.frame.rebar.entity.tool.ForestTool;

/**
 * @description 类工具
 *
 * @author quark
 * @organization aerie
 * @date 2020年2月28日 下午12:41:52
 * @version 1.2.0
 */
public final class ClassTool extends ForestTool {

	/**
	 * @description 单例
	 * 
	 * @author quark
	 * @date 2020年2月28日 下午12:41:42
	 */
	private static volatile ClassTool classTool;

	/**
	 * Construction
	 * 
	 *
	 * @date 2020年2月28日 下午12:41:35
	 */
	private ClassTool() {
		super("类工具");
		LOGGER.info(LogMsgPool.INIT_COMPLETE , forestFrameName);
	}

	/**
	 * @description 获得单例类工具
	 * @return 类工具
	 *
	 * @date 2020年2月28日 下午12:36:14
	 */
	static final ClassTool getInstance() {
		/**
		 * 双重锁
		 */
		if (classTool == null) {
			synchronized (ClassTool.class) {
				if (classTool == null) {
					classTool = new ClassTool();
				}
			}
		}
		return classTool;
	}

	/**
	 * @description 判断对象是不是基本数据类型
	 * @param object 需要校验的对象
	 * @return 是不是基本数据类型
	 *
	 * @date 2020年2月28日 下午12:32:20
	 */
	public boolean isBaseType(Object object) {
		return (object instanceof Byte || object instanceof Short || object instanceof Long || object instanceof Float
				|| object instanceof Double || object instanceof Boolean || object instanceof Character
				|| object instanceof Integer);

	}

}
